package com.zrrd.gmall.product.service;

import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zrrd.gmall.model.product.*;
import org.apache.ibatis.annotations.Param;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

public interface SkuInfoService extends IService<SkuInfo> {

    //获取sku基本信息
    SkuInfo getSkuInfo(Long skuId) throws InterruptedException;

    //1.根据SpuId获取Spu图片列表
    List<SpuImage> getSpuImageList(Long spuId);

    //2.根据SpuId查询销售属性以及对应属性值列表
    List<SpuSaleAttr> getSpuSaleAttrList(Long spuId);

    //添加Sku
    void saveSkuInfo(SkuInfo skuInfo);

    //根据3级分类ID 查询3个分类的数据（视图）
    BaseCategoryView getBaseCategoryViewById(Long category3Id);

    //获取Sku的价格
    BigDecimal getSkuPrice(Long skuId);

    //根据SkuId和SpuId查询出sku对应的spu的销售属性以及属性值以及标记当前sku所选中的销售属性
    List<SpuSaleAttr> getSpuSaleAttrListBySkuId( Long skuId,Long spuId);

    //根据SpuId查询出每个Sku选择了哪些属性值
    Map getSaleAttrValueBySku(Long spuId);


    //获取全部分类信息（分层）
    List<JSONObject> getBaseCategoryList();

    //根据skuId获取平台属性以及属性值
    List<BaseAttrInfo> getBaseAttrInfo(Long skuId);
}
